/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package GM;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Goal Diagram</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link GM.GoalDiagram#getHasRLink <em>Has RLink</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasGoal <em>Has Goal</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasAdGoal <em>Has Ad Goal</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasEvent <em>Has Event</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasOper <em>Has Oper</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasEntity <em>Has Entity</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasAgent <em>Has Agent</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasAction <em>Has Action</em>}</li>
 *   <li>{@link GM.GoalDiagram#getHasCLink <em>Has CLink</em>}</li>
 * </ul>
 * </p>
 *
 * @see GM.GMPackage#getGoalDiagram()
 * @model
 * @generated
 */
public interface GoalDiagram extends EObject {
	/**
	 * Returns the value of the '<em><b>Has RLink</b></em>' containment reference list.
	 * The list contents are of type {@link GM.RefinementLink}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has RLink</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has RLink</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasRLink()
	 * @model containment="true"
	 * @generated
	 */
	EList<RefinementLink> getHasRLink();

	/**
	 * Returns the value of the '<em><b>Has Goal</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Goal}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Goal</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Goal</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasGoal()
	 * @model containment="true"
	 * @generated
	 */
	EList<Goal> getHasGoal();

	/**
	 * Returns the value of the '<em><b>Has Ad Goal</b></em>' containment reference list.
	 * The list contents are of type {@link GM.AdGoal}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Ad Goal</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Ad Goal</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasAdGoal()
	 * @model containment="true"
	 * @generated
	 */
	EList<AdGoal> getHasAdGoal();

	/**
	 * Returns the value of the '<em><b>Has Event</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Event}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Event</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Event</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasEvent()
	 * @model containment="true"
	 * @generated
	 */
	EList<Event> getHasEvent();

	/**
	 * Returns the value of the '<em><b>Has Oper</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Operation}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Oper</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Oper</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasOper()
	 * @model containment="true"
	 * @generated
	 */
	EList<Operation> getHasOper();

	/**
	 * Returns the value of the '<em><b>Has Entity</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Entity}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Entity</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Entity</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasEntity()
	 * @model containment="true"
	 * @generated
	 */
	EList<Entity> getHasEntity();

	/**
	 * Returns the value of the '<em><b>Has Agent</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Agent}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Agent</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Agent</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasAgent()
	 * @model containment="true"
	 * @generated
	 */
	EList<Agent> getHasAgent();

	/**
	 * Returns the value of the '<em><b>Has Action</b></em>' containment reference list.
	 * The list contents are of type {@link GM.Action}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Action</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Action</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasAction()
	 * @model containment="true"
	 * @generated
	 */
	EList<Action> getHasAction();

	/**
	 * Returns the value of the '<em><b>Has CLink</b></em>' containment reference list.
	 * The list contents are of type {@link GM.ContributionLink}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has CLink</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has CLink</em>' containment reference list.
	 * @see GM.GMPackage#getGoalDiagram_HasCLink()
	 * @model containment="true"
	 * @generated
	 */
	EList<ContributionLink> getHasCLink();

} // GoalDiagram
